package point;

/**
 * 简单：
 * 给定一个字符串，判断是否是回文字符串
 *  y: race a e-car  true
 *      race a car   false
 * @Author Gavin
 * @date 2021.12.07 21:07
 */
public class palindrome_1 {
    /**
     *思路：
     * 就是两个指针，一个向右，一个向左移动，如果遇到不是字符串的就继续移动，然后比较
     * 每个字符串是否想等
     */
    public static boolean solution(String s){
        if(s==null|| s.equals("")){return true;}
        for (int i = 0,j=s.length()-1; i < j; i++,j--) {
            while (i<j&&!isChar(s.charAt(i)))++i;//如果遇到非字符串就继续移动，下面同理
            while (i<j&&!isChar(s.charAt(j)))--j;
            if(i<j&&!isEqualIgnoreCase(s.charAt(i),s.charAt(j)))return false;
        }
        return true;
    }
    //判断是不是一个字符
    private static boolean isChar(char c){
        return (c>='a'&&c<='z')||(c>='A'&&c<='Z')||(c>='0'&&c<='9');
    }
    //忽略大小写是否想等
    private static boolean isEqualIgnoreCase(char a,char b){
        if(a>='A'&&a<='Z')a+=32;//把大写转换为小写
        if(b>='A'&&b<='Z')b+=32;
        return a==b;
    }

    public static void main(String[] args) {
        String s="123";
        char a='0';
        char b='a';
        char c='A';
        System.out.println(a+1);
        System.out.println(b+1);
        System.out.println(c+1);
    }
}
